import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

// import VueAxios from 'vue-axios'
import 'normalize.css/normalize.css'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI)
import './styles/index.css' // 全局 css
import $ from 'jquery'
//日期处理
import moment from 'moment'
Vue.prototype.$moment = moment

//全局变量
import Global from './utils/global.js'
Vue.prototype.$Global = Global;

import esriLoader from 'esri-loader'
Vue.use(esriLoader)

// //使用钩子函数对路由进行权限跳转
// 导航守卫
// 参数1 : to 目标路由对象
// 参数2 : from 来源路由对象
// 参数3 : next() 下一步
router.beforeEach((to, from, next) => {

  let token = store.getters.token;
  // 如果vuex中得token为空并且sessionStorage缓存中不为空则将缓存中得token拿出来赋值
  if (Global.isNull(token) && !Global.isNull(sessionStorage.getItem('token'))) {
    token = sessionStorage.getItem('token');
  }
  if (to.path === '/loginOut') {
    store.dispatch('LogOut');
    setTimeout(() => {
      next('/login');
    }, 1000);
  } else if (to.path === '/login') {
    // 如果是登陆状态则直接转到home页面
    if (!Global.isNull(token)) {
      next('/layout');
    }
    next();
  } else {
    // 不是登录页面, 判断 是否登录状态
    !Global.isNull(token) ? next() : next('/login');
  }
})

Vue.config.productionTip = false

new Vue({
  router,
  store,
  // scrollBehavior: () => ({ y: 0 }),
  render: h => h(App)
}).$mount('#app')
